/**
 * Copyright (c) 2024,  科泰集团教研团队
 * 版权所有，请勿侵权
 */
package com.ktjiaoyu.web.converter;

import com.alibaba.fastjson2.util.DateUtils;
import org.springframework.core.convert.converter.Converter;

import java.util.Date;

/**
 * @author 科泰集团教研团队
 * @version 1.0.0
 * @packageName com.ktjiaoyu.web.converter
 * @fileName String2DateConverter.java
 * @createTime 2024/10/20 18:51
 * @lastModify 2024/10/20 18:51
 */
public class String2DateConverter implements Converter<String, Date> {
    // 支持转换的日期格式(有默认值，也可以注入)
    private String[] dateFormats = {
            "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss","yyyy/MM/dd"
    };
    // 可以外部注入格式
    public void setDateFormats(String[] dateFormats) {
        this.dateFormats = dateFormats;
    }
    @Override
    public Date convert(String source) {
        for (int i = 0; i < dateFormats.length; i++) {
            try {
                // 尝试每一个格式进行转换
                return DateUtils.parseDate(source, dateFormats[i]);
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        throw new RuntimeException("日期格式转换失败，值为：" + source);
    }
}